iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
AI & Data

AWS 數據處理與分析實戰系列 第 14

Day 14 Glue ETL Job 教學 - Part 1

  • 分享至 

  • xImage
  •  

接下來我們來介紹 ETL Job
在開始之前我們需要先準備資料源

  1. 這次我們一樣使用 Kaggle 的資料,將資料放入 S3,階層如下圖
it.sample.s3
   ㇄SampleData
        ㇄order
        ⎢  ㇄orders.csv
        ㇄order_products_prior
        ⎢  ㇄order_products__prior.csv
        ㇄order_products_train
        ⎢  ㇄order_products__train.csv
        ㇄products
        ⎢  ㇄products.csv
        ㇄sample_submission
        ⎢  ㇄sample_submission.csv
        ㇄departments
        ⎢  ㇄departments.csv
        ㇄aisles
           ㇄aisles.csv
  1. S3 上的資料準備完成後,再到 Glue 的 Crawlers 在創建一次我們在 Day 7 所創建的 Crawler (SimpleDataCrawler),將S3 的路徑由 s3://it.sample.s3/SampleData/order 改為 s3://it.sample.s3/SampleData,完成後執行此 Crawler

https://ithelp.ithome.com.tw/upload/images/20200928/20129236OlxE7Oy1HG.png

  1. 執行完成後可以看到 table 中多出了 7 張新的 Table,但會發現其中一張 Table(products) 沒有爬取成功,因為在 589 行的地方出現了 "10"" Bamboo Skewers" 這樣的資料,所以導致 Crawler 無法正常判斷,使用編輯器將 "" 去除,再重新執行一次 Crawler 就可以正常爬取資料,如果發現欄位有異常,可以先刪除 Table 在執行 Crawler

https://ithelp.ithome.com.tw/upload/images/20200928/20129236njFNngXGC5.png

在遇到比較大的資料無法使用編輯器進行處理時,則可以使用 Linux CMD 進行字元替換
sed -i 's/\/""//g' products.csv
s/:代表執行替換功能
\/"":代表要替換的字元 /""
//:代表替換後的字元

而找出錯誤的方式可以使用二分法或是減少資料筆數先讓 Crawler 可以正常運作,這次 troubleshooting 的方式就是先將資料筆數固定在前1000 筆資料,再透過二分法找出有問題的資料欄位


上一篇
Day 13 Athena 教學
下一篇
Day 15 Glue ETL Job 教學 - Part 2
系列文
AWS 數據處理與分析實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言